Methods and systems for managing power supply to a network device

ABSTRACT

The present invention discloses a method carried out at a power controller for managing power supply to a network device, comprising the steps of sending a request message to a remote server, wherein the power controller is connected to the remote server via the network device and waiting for a valid response message from the remote server, wherein a valid response is received when all components of the network device are functioning properly. When a valid response message is not received from the remote server within a first predefined time, the network device is restarted. For the present invention the power controller connects to the remote server via the network device, wherein the network device connects to the remote server using at least one network interface. Furthermore, the request message is sent by the power controller via the network device if the network device is connected to the remote server via at least one network interface wherein the power controller has a data connection and a power connection with the network device.

TECHNICAL FIELD

The present invention relates in general to the field of networkdevices. More particularly, the present invention relates to a methodcarried out at a power controller for managing power supply to a networkdevice.

BACKGROUND ART

Electronic devices comprising both hardware and software elements maysometimes not respond ideally to changes in network conditions, orchanges in software or hardware configuration. This may happen due to amalfunction or bugs. Connections established at electronic devices withnetworking capabilities may become slow or may stop working due tovarious reasons. One of the reasons why connections may be broken isthat Internet service providers (ISP) may change IP addresses often.This may cause the electronic device to attempt to connect to a wrong IPaddress or an expired IP address for establishing a connection. In suchcases, restarting the electronic device is likely to fix the problem.However, in state of the art systems, restarting may require a user oradministrator to be physically present in the vicinity of the electronicdevice if the device is not connected to any network. Therefore, methodsand systems are required for automatically restarting devices whenrequired.

SUMMARY OF INVENTION

The present invention discloses a method carried out at a powercontroller for managing power supply to a network device, comprising thesteps of sending a request message to a remote server, wherein the powercontroller is connected to the remote server via the network device andwaiting for a valid response message from the remote server, wherein avalid response is received when all components of the network device arefunctioning properly. When a valid response message is not received fromthe remote server within a first predefined time, the network device isrestarted. For the present invention the power controller connects tothe remote server via the network device, wherein the network deviceconnects to the remote server using at least one network interface.Furthermore, the request message is sent by the power controller via thenetwork device if the network device is connected to the remote servervia at least one network interface wherein the power controller has adata connection and a power connection with the network device.

According to the present invention, a length of time that one or morecomponents of the network device has been disconnected from the remoteserver or not functioning properly is determined. If it is seen that thelength of time is longer than a second predefined time and a validresponse message is not received from the remote server within thepredefined time, the network device is restarted.

Furthermore, the power controller comprises a subscriber identity module(SIM) card slot housing a SIM card wherein the request message is sentusing a cellular network, and not sent via the network device.

According to the embodiment of the present invention, the powercontroller supplies power to the network device using power overEthernet (PoE).

In one variant of the present invention the power controller suppliespower to the network device using an alternating current (AC) poweroutlet.

In one variant of the present invention, the power controller suppliespower to the network device using a serial console or a universal serialbus (USB) port.

In one variant of the present invention, the power controller suppliespower to a plurality of electronic devices.

In one variant of the present invention, one or more of the plurality ofelectronic devices are restarted based, at least in part, on a messagefrom a management server. The message is received from the managementserver via the network device.

Furthermore, for the present embodiment, the message received from themanagement server is a short message service (SMS) message, wherein themessage is received via a SIM card housed in a SIM card slot of thepower controller.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1A is block diagram illustrating a network environment according toone of the embodiments of the present invention.

FIG. 1B is a block diagram illustrating a network environment accordingto one of the embodiments of the present invention.

FIG. 1C is a block diagram illustrating a system architecture of networkdevice 102.

FIG. 1D is a block diagram illustrating a system architecture of powercontroller 105.

FIG. 1E is a block diagram illustrating the external components ofnetwork device 102 according to one of the embodiments of the presentinvention.

FIG. 2 is a flowchart illustrating a process according to one of theembodiments of the present invention.

FIG. 3 is a flowchart illustrating a process when the condition is basedon the performance according to one of the embodiments of the presentinvention.

FIG. 4A illustrates a block diagram of network device 102 according toone of the embodiments of the present invention

FIG. 4B is a flowchart illustrating a restart process for performingstep 203 of FIG. 2 according to one of the embodiments of the presentinvention.

FIG. 5 is a flowchart illustrating a process performed after restartingnetwork device 102 according to one of the embodiments of the presentinvention.

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention.

DETAILED DESCRIPTION

The ensuing description provides preferred exemplary embodiment(s) only,and is not intended to limit the scope, applicability or configurationof the invention. Rather, the ensuing description of the preferredexemplary embodiment(s) will provide those skilled in the art with anenabling description for implementing a preferred exemplary embodimentof the invention. It being understood that various changes may be madein the function and arrangement of elements without departing from thespirit and scope of the invention as set forth in the appended claims.

Specific details are given in the following description to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, circuits maybe shown in block diagrams in order not to obscure the embodiments inunnecessary detail. In other instances, well-known circuits, processes,algorithms, structures, and techniques may be shown without unnecessarydetail in order to avoid obscuring the embodiments.

Also, it is noted that the embodiments may be described as a processwhich is depicted as a flowchart, a flow diagram, a data flow diagram, astructure diagram, or a block diagram. Although a flowchart may describethe operations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be re-arranged. A process is terminated when itsoperations are completed, but could have additional steps not includedin the figure. A process may correspond to a method, a function, aprocedure, a subroutine, a subprogram, etc. When a process correspondsto a function, its termination corresponds to a return of the functionto the calling function or the main function.

Embodiments, or portions thereof, may be embodied in programinstructions operable upon a processing unit for performing functionsand operations as described herein. The program instructions making upthe various embodiments may be stored in a non-transitory storagemedium. Moreover, as disclosed herein, the term “non-transitory storagemedium” may represent one or more devices for storing data, includingread only memory (ROM), programmable read-only memory (PROM), erasableprogrammable read-only memory (EPROM), random access memory (RAM),magnetic RAM, core memory, floppy disk, flexible disk, hard disk,magnetic tape, CD-ROM, flash memory devices, a memory card and/or othermachine readable mediums for storing information. The term“machine-readable medium” includes, but is not limited to portable orfixed storage devices, optical storage mediums, magnetic mediums, memorychips or cartridges, wireless channels and various other mediums capableof storing, containing or carrying instruction(s) and/or data. Amachine-readable medium can be realized by virtualization and can be avirtual machine readable medium including a virtual machine readablemedium in a cloud-based instance.

The term “non-transitory computer-readable medium”, “main memory”, or“secondary storage”, as used herein refers to any medium thatparticipates in providing instructions to a processing unit forexecution. The computer-readable medium is just one example of amachine-readable medium, which may carry instructions for implementingany of the methods and/or techniques described herein. Such a medium maytake many forms, including but not limited to, non-volatile media,volatile media, and transmission media. Non-volatile media includes, forexample, optical or magnetic disks. Volatile media includes dynamicmemory. Transmission media includes coaxial cables, copper wire andfiber optics. Transmission media can also take the form of acoustic orlight waves, such as those generated during radio-wave and infrared datacommunications.

A volatile storage may be used for storing temporary variables or otherintermediate information during execution of instructions byprocessor/processing unit. A non-volatile storage or static storage maybe used for storing static information and instructions for processor,as well as various system configuration parameters.

The storage medium may include a number of software modules that may beimplemented as software code to be executed by the processing unit usingany suitable computer instruction type. The software code may be storedas a series of instructions or commands, or as a program in the storagemedium.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to the processor forexecution. For example, the instructions may initially be carried on amagnetic disk from a remote computer. Alternatively, a remote computercan load the instructions into its dynamic memory and send theinstructions to the system that runs the one or more sequences of one ormore instructions.

A processing unit may be a microprocessor, a microcontroller, a digitalsignal processor (DSP), any combination of those devices, or any othercircuitry configured to process information.

A processing unit executes program instructions or code segments forimplementing embodiments of the present invention. Furthermore,embodiments may be implemented by hardware, software, firmware,middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program instructions to perform the necessary tasksmay be stored in a computer readable storage medium. A processingunit(s) can be realized by virtualization and can be a virtualprocessing unit(s) including a virtual processing unit in a cloud-basedinstance.

Embodiments of the present invention are related to the use of acomputer system for implementing the techniques described herein. In anembodiment, the inventive processing units may reside on a machine suchas a computer platform. According to one embodiment of the invention,the techniques described herein are performed by computer system inresponse to the processing unit executing one or more sequences of oneor more instructions contained in the volatile memory. Such instructionsmay be read into the volatile memory from another computer-readablemedium. Execution of the sequences of instructions contained in thevolatile memory causes the processing unit to perform the process stepsdescribed herein. In alternative embodiments, hard-wired circuitry maybe used in place of or in combination with software instructions toimplement the invention. Thus, embodiments of the invention are notlimited to any specific combination of hardware circuitry and software.

A code segment, such as program instructions, may represent a procedure,a function, a subprogram, a program, a routine, a subroutine, a module,a software package, a class, or any combination of instructions, datastructures, or program statements. A code segment may be coupled toanother code segment or a hardware circuit by passing and/or receivinginformation, data, arguments, parameters, or memory contents.Information, arguments, parameters, data, etc. may be passed, forwarded,or transmitted via any suitable means including memory sharing, messagepassing, token passing, network transmission, etc.

Alternatively, hardwired circuitry may be used in place of, or incombination with, software instructions to implement processesconsistent with the principles of the invention. Thus, implementationsconsistent with principles of the invention are not limited to anyspecific combination of hardware circuitry and software.

A network interface that may be provided by a node is an Ethernetinterface, a frame relay interface, a fiber optic interface, a cableinterface, a DSL interface, a token ring interface, a serial businterface, a universal serial bus (USB) interface, Firewire interface,Peripheral Component Interconnect (PCI) interface, etc.

A network interface may be implemented by a standalone electroniccomponent or may be integrated with other electronic components. Anetwork interface may have no network connection or at least one networkconnection depending on the configuration. A network interface may be anEthernet interface, a frame relay interface, a fiber optic interface, acable interface, a Digital Subscriber Line (DSL) interface, a token ringinterface, a serial bus interface, a universal serial bus (USB)interface, Firewire interface, Peripheral Component Interconnect (PCI)interface, etc.

A network interface may connect to a wired or wireless access network.An access network may carry one or more network protocol data. A wiredaccess network may be implemented using Ethernet, fiber optic, cable,DSL, frame relay, token ring, serial bus, USB, Firewire, PCI, or anymaterial that can pass information. A wireless access network may beimplemented using infrared, High-Speed Packet Access (HSPA), HSPA+, LongTerm Evolution (LTE), WiMax, GPRS, EDGE, GSM, CDMA, WiFi, CDMA2000,WCDMA, TD-SCDMA, BLUETOOTH, WiBRO, Evolution-Data Optimized (EV-DO);Digital Enhanced Cordless Telecommunications (DECT); Digital AMPS(IS-136/TDMA); Integrated Digital Enhanced (iDEN) or any other wirelesstechnologies.

Embodiments, or portions thereof, may be embodied in a computer datasignal, which may be in any suitable form for communication over atransmission medium such that it is readable for execution by afunctional device (e.g., processing unit) for performing the operationsdescribed herein. The computer data signal may include any binarydigital electronic signal that can propagate over a transmission mediumsuch as electronic network channels, optical fibers, air,electromagnetic media, radio frequency (RF) links, and the like, andthus the data signal may be in the form of an electrical signal, opticalsignal, radio frequency or other wireless communication signal, etc. Thecode segments may, in certain embodiments, be downloaded via computernetworks such as the Internet, an intranet, LAN, MAN, WAN, the PSTN, asatellite communication system, a cable transmission system, and/or thelike.

FIG. 1A illustrates a network environment according to variousembodiments of the present invention. Hosts 101 a and 101 b areconnected to network device 102 through a wired or wireless local areanetwork (LAN), or any other wired or wireless connection viatechnologies such as a universal serial bus (USB), Wi-Fi, Bluetooth, orserial console. Network device 102 connects to interconnected networks103 through one or more of their Wide Area Network (WAN) interfaces.Management server 104 also connects to interconnected networks 103. Auser or administrator may access management server 104 locally orremotely using a terminal such as device 107 or 108.

A management server, such as management server 104, is used to managehosts or nodes remotely. Management server 104 is a router, a networknode, a server, a desktop, a laptop, a mobile device or any electronicdevice that may store information related to a device and through whicha device can be managed by a user or administrator. For example,management server 104 is used to manage network device 102, and/or hosts101 a and 101 b, or any other electronic device that can be managedremotely. The administrator or user uses management server 104 to checkthe status of connections of network device 102, and to sendinstructions to network device 102. The user or administrator may enterthe instructions at device 107 or 108 through a web interface, an API, acommand line interface or a console. The user or administrator may needto manage more than one device including network device 102, andtherefore it is beneficial to use management server 104, such thatinformation related to all devices are stored and can be managed throughmanagement server 104. In one variant, the user or administrator usesdevice 107 to send instructions directly to network device 102 insteadof sending the instruction to management server 104. Device 108 is in asame network as management server 104, i.e. device 108 may communicatewith management server 104 directly via a wired or wireless connection.Device 107 may communicate with management server 104 via interconnectednetworks 103. Device 107 may be a laptop, a desktop, smartphone, amobile device, or any electronic device that is capable of allowing theadministrator or user to communicate information through interconnectednetworks 103. Similarly, device 108 may be a laptop, a desktop,smartphone, a mobile device, or any electronic device that is capable ofallowing the administrator or user to communicate information tomanagement server 104. For example, network device 102 houses a SIM cardand is able to receive messages such as SMS messages, and device 107 isa mobile device. The user or administrator uses device 107 to send amessage, such as an SMS message to network device 102. The messagecomprises one or more instructions.

FIG. 2 is a flowchart illustrating a process according to one of theembodiments of the present invention. A plurality of conditions isdefined by an administrator for allowing network device 102 to determinewhether one or more components of network device 102, or one or moredevices connected to network device 102 are functioning properly.Components of network device 102 may include WAN interfaces, LANinterfaces, and main memory. In step 201, network device 102 monitorswhether any of the plurality of conditions are satisfied. If networkdevice 102 determines in step 202 that at least one condition issatisfied, one or more components of network device 102, or one or moredevices connected to network device 102 are restarted in step 203.

According to one of the embodiments, only the components at which the atleast one condition is satisfied are restarted. For example, when WANinterface 115 is not functioning properly, or has malfunctioned, onlyWAN interface 115 is restarted in step 203. One of the benefits ofrestarting only the component that has satisfied a condition is that thetime required to restart is likely to be less, as the whole networkdevice 102 is not restarted. The interruption in connectivity of networkdevice 102 and devices depending on network device 102 is thusminimized.

For illustration purposes, restarting network interfaces includesdisabling and enabling the network interfaces. For example, WANinterface 115 is an Ethernet WAN interface, and is named eth0 accordingto its configuration. It is known to those skilled in the art that thestandard of naming Ethernet interfaces is eth0, eth1, eth2, and so onfor a first Ethernet interface, second Ethernet interface, thirdEthernet interface, and so on. A Linux command “ifdown eth0” is used fordisabling WAN interface 115, and “ifup eth0” is used for enabling WANinterface 115. Using the two commands respectively, WAN interface 115can be restarted.

In another embodiment, when one or more components of network device 102satisfies a condition, all components of network device 102 arerestarted, regardless of whether they satisfied the condition or not.Therefore, network device 102 is restarted. One of the benefits ofrestarting all components of network device 102 in step 203 is that whenall components are restarted, it is likely that all components willstart functioning correctly in coordination with each other.

For illustration purposes, a Linux command “ifdown −a” is used fordisabling all network interfaces of network device 102 that arecurrently enabled, and “ifup −a” is used for enabling all networkinterfaces that are currently disabled. Therefore, all networkinterfaces are restarted. A Linux command “reboot” can used forrestarting network device 102, i.e. all components of network device 102are restarted.

According to one of the embodiments of the present invention, the stepsof FIG. 2 are performed by an external power controller. Details of howa power controller is used for controlling power supply to networkdevice 102 is described further in FIG. 1B and FIG. 6.

According to various embodiments of the present invention, the pluralityof conditions is based on one or more of the following: connectivity,time, location, bandwidth, a policy, memory status, usage price, orprocessing unit load.

According to one of the embodiments, the condition is based on time. Forexample, if a condition for restarting is time, the restarting in step203 is performed periodically, or at a predefined time. In one variant,each component of network device 102 is restarted one by one, i.e. allcomponents are not restarted at the same time. For illustrationpurposes, WAN interfaces 115, 116, and 117 are each connected to afirst, second and third network respectively. WAN interfaces 115, 116,and 117 are restarted one by one at step 203. More precisely, WANinterface 115 is first restarted, and when WAN interface 115 isfunctioning again, WAN interface 116 is restarted. Similarly, when WANinterface 116 is functioning again, WAN interface 117 is restarted. Oneof the benefits of restarting the components one by one is that networkdevice 102 is connected to at least one network at a given time, andtherefore has Internet connectivity through at least one WAN interface.In one variant, instead of only restarting WAN interfaces of networkdevice 102, network device 102 is restarted altogether; i.e. allcomponents such as WAN interfaces, processing unit 111, main memory 112,and secondary storage 114 are restarted. Restarting of a component isperformed by stopping power supply to the component, and then againresuming power supply to the component. In one variant, only a specificcomponent, such as WAN interface 115 is restarted at a given time. Forexample, a network that WAN interface 115 connects to is scheduled formaintenance from 04:00 am to 05:00 am every Saturday. Therefore, networkdevice 102 restarts WAN interface 115 after 05:00 am every Saturday.

According to one of the embodiments, the condition is based ongeographical location. For example, when network device 102 is movedfrom a first geographical location to a second geographical location,network device 102 restarts itself or one or more of its WAN interfaces.Geographical location of network device 102 is determined by processingunit 111 using a global positioning system (GPS) sensor. The GPS sensoris mounted within network device 102 or is externally attached tonetwork device 102. The GPS sensor sends a trigger to processing unit111 when there is a significant change in the geographical location ofthe router. In one variant, a motion sensor or motion detector ismounted in network device 102 or externally connected to network device102. The motion sensor or motion detector sends a trigger to processingunit 111 when network device 102 moves more than a predefined distance.Processing unit 111 then restarts some or all components of networkdevice 102 in step 203. One of the benefits of restarting network device102 when its geographical location changes significantly is that networkdevice 102 may connect to networks or base stations with better signalsbased on the new geographical location. For example, when network device102 is restarted, it scans for new wireless networks to connect to. Thewireless networks may be cellular networks or Wi-Fi networks.

According to one of the embodiments, the condition is based onperformance of one or more WAN connections that network device 102 usesfor connecting to interconnected networks 103. For example, a firstconnection is established between WAN interface 115 and a first network.If the performance of one or more connections deterioratessignificantly, the condition is satisfied and step 203 is performed. Inone variant, only WAN interface 115 is restarted, as the performancedeterioration occurs at a connection of WAN interface 115. In anothervariant, all components of network device 102 are restarted. Thebenefits of restarting all components, or a specific component aredescribed above. For example, when packet drop rate or packet loss rateof the first connection rises above a first predefined threshold, orbandwidth of the first connection falls below a second predefinedthreshold, or latency of the first connection rises above a thirdpredefined threshold, step 203 is performed. This is discussed infurther detail in FIG. 3.

According to one of the embodiments of the present invention, thecondition is based on a policy. The policy is defined by a user or anadministrator. For example, a policy is defined such that if no data hasbeen received through any WAN interfaces for more than a predefined timeperiod, network device 102 is restarted. For illustration purpose, ifnetwork device 102 has not received any data for a long time, it islikely that the connections of the network device 102 are down, or oneor more components have malfunctioned. Therefore, it is beneficial torestart network device 102 in such cases, so that the connections arere-established.

In another example, a policy is defined such that when a messageregarding a maintenance schedule is received from an ISP, network device102 is restarted after the maintenance.

According to one of the embodiments of the present invention, thecondition is based on status of main memory 112. For example, if it isdetermined that the amount of available memory less than a threshold, orthere is a memory leak, the condition is satisfied and network device102 is restarted in step 203.

According to one of the embodiments of the present invention, thecondition is based on whether network device 102 is functioningnormally. For example, if one or more functions of network device 102are not producing correct or expected results, are not responding, orone or more modules of network device 102 are hung, the condition issatisfied and network device 102 is restarted in step 203.

According to one of the embodiments of the present invention, thecondition is based on usage price. For example, when usage price ofusing a WAN connection established through WAN interface 116 exceeds apredefined threshold, WAN interface 116 is restarted. WAN interface 116may be configured such that, whenever WAN interface 116 is restarted, aprepaid data plan is purchased in order to avoid paying per unit datapricing. It is common that per unit data pricing is higher than datapricing for a data plan. A data plan can be purchased by sending apredefined message to a carrier or ISP. The predefined message may be aSMS message, an email, a message on a web-page, a voice message, aninstant message, or any other message that can be used for purchasing adata plan. The purchase may be billed to existing prepaid balance,postpaid balance, or any other electronic payment methods. In onevariant, before purchasing the data plan, a message is sent to a user oradministrator for confirmation, and the purchase is made after receivinga confirmation from the user or administrator.

According to one of the embodiments of the present invention, thecondition is satisfied when a usage limit and/or a corresponding timelimit for a data plan corresponding to a WAN connection is reached or isabout to be reached. The usage limit and corresponding time limit isspecified according to a data plan purchased from a carrier or serviceprovider. Bandwidth throttling may occur when a usage limit is reached.In some scenarios, even if it is time to reset a usage limit, or when apayment has been made by a user or administrator for resetting the usagelimit, the usage limit may not be reset automatically. When the usagelimit is reached or is about to be reached, the condition is satisfied,and network device 102 is restarted. When network device 102 isrestarted, it is likely that the usage is reset. For example, the timelimit of a prepaid data plan of a WAN connection is one month, and theusage limit is 10 GB. When the time limit is over, the pre-paid dataplan should be purchased again, even if there's remaining usage limit.When the prepaid data plan is purchased again, the usage limit is resetto 10 GB. In one variant, if the remaining usage limit is 1 GB, theusage limit is reset to 11 GB by accumulating 1 GB and 11 GB. If it isdetermined that the data plan has been purchased, but the usage limithas not been reset, the network device 102 is restarted, and the usagelimit is then reset.

According to one of the embodiments of the present invention, thecondition is based on processing unit load. For example, when theprocessing unit load of network device 102 is determined to be higherthan a predefined threshold, the condition is satisfied and one or morecomponents of network device 102 are restarted. When processing unitload is high, network device 102 may malfunction or some functions maynot work properly as expected. In order to avoid malfunctioning and amemory leak, network device 102 is restarted if processing unit loadbecomes higher than a predefined threshold.

According to one of the embodiments of the present invention, the whenthe condition is satisfied in step 202, drivers of one or more connectedmodems are reinstalled in step 203. For example, a USB 4G modem isconnected to USB port 140, where the USB LTE modem allows WAN interface115 to connect to a 4G network. When a condition is satisfied, driversfor the USB LTE modem are reinstalled, in case there is a malfunction.

The drivers are downloaded from management server 104. Alternatively,the drivers are downloaded from another server accessible throughinterconnected networks 103. Alternatively, the drivers are stored insecondary storage 114, and are retrieved from secondary storage 114during installation.

According to one of the embodiments of the present invention, after oneor more components of network device 102 are restarted in step 203,processing unit 111 resets configurations of network device 102 asbefore. For example, if there were any VPN connections establishedthrough any of the WAN interfaces, the VPN connections arere-established after restarting. FIG. 5 is a flowchart illustrating aprocess performed after restarting network device 102 according to oneof the embodiments of the present invention. In step 501, network device102 informs management server 104 that network device 102 has beenrestarted and is on again. In step 502, network device 102 determineswhether any configuration has been received from a user or administratorat management server 104 while network device 102 was off. As discussedabove, management server 104 is used by a user or administrator tomanage or configure network device 102. If a configuration for networkdevice 102 is received by management server 104, it stores theconfiguration, and waits until network device 102 is turned on forsending the configuration to network device 102. Therefore, when networkdevice 102 has restarted, it retrieves the configurations, if any, frommanagement server 104 in step 503. Network device 102 is then configuredwith the configurations.

According to one of the embodiments of the present invention, when acondition is satisfied in step 202, instead of restarting one or morecomponents of network device 102, all settings of network device 102 arereset, and any user logging in to network device 102 or hosts 101 a or101 b are logged off. This is beneficial as it ensures additionalsecurity of the network device 102. For example, when a condition isbased on location, and there is a significant change in the geographicallocation of network device 102, VPN connections of network device 102are disconnected, and hosts 101 a, 101 b or any other devices connectingto network device 102 are prompted for authentication again for havingaccess to network device 102.

FIG. 3 is a flowchart illustrating a process when the condition is basedon the performance according to one of the embodiments of the presentinvention. In step 301, network device 102 monitors performance of WANconnections established through its WAN interfaces, such as WANinterface 115. In step 302, if the performance of a WAN connectionestablished through WAN interface 115 is not satisfactory, WAN interface115 is restarted in step 303. The performance monitored may include oneor more of throughput, error rates, packet latency, packet jitter,symbol jitter, quality of service, bandwidth, bit error rate, packeterror rate, frame error rate, dropped packet rate, queuing delay, roundtrip time, capacity, signal level, interference level, bandwidth delayproduct, handoff delay time, signal-to-interface ratio, andsignal-to-noise ratio.

For example, in step 302, it is determined that latency of a connectionestablished through WAN interface 115 increases more than a predefinedthreshold, it is likely that the connection is down. WAN interface 115is then restarted in step 303. When WAN interface 115 is restarted, theconnection is established again, and it is likely that the latency islower than predefined threshold when the connection is establishedagain. For example, a wireless cellular connection can be establishedusing WAN interface 115. WAN interface 115 establishes the wirelesscellular connection with an available base station. In one variant, whenWAN interface 115 is restarted in step 303, network device 102 scans forother base stations to connect to using WAN interface 115. One of thebenefits of scanning for other base stations is that the connectionestablished with another base station may have lower latency than theprevious connection.

In another example, in step 302, it is determined that a signal-to-noiseratio (SNR) margin at a WAN interface, such as WAN interface 116, islower than a predefined threshold. The SNR margin is the differencebetween current SNR and the SNR that's required to serve a particularspeed. When SNR margin is lower than expected, it is likely that thereis a problem in the physical connection established through WANinterface 116. WAN interface 116 is therefore restarted in step 303.Drivers for establishing a connection at WAN interface 116 arereinstalled. In one variant, when the connection is a wired connection,a message is sent to the user or administrator with an instruction toreplace the modem and/or the wire.

In one variant, in step 302, network device 102 further monitors statusof end-to-end connections, such as virtual private network (VPN)connections established through WAN interfaces 115-117. If anyend-to-end connections are down or broken, network device 102 restartsone or more components in step 303. When WAN interfaces 115-117 arerestarted, or network device 102 is restarted, network device 102 maytry to establish VPN connections again. VPN connections may beestablished according to VPN profiles configured by a user oradministrator. When the VPN connections are established again, networkdevice 102 may avoid establishing a connection using a WAN connectionthat has a deteriorating performance.

FIG. 1B is a block diagram illustrating a network environment accordingto one of the embodiments of the present invention. Steps of FIG. 2A areperformed by power controller 105, such that power controller 105controls power supply to network device 102. Power controller 105 isoptionally also used for controlling power supply to electronics 129.Power supply to network device 102 and electronics 129 are not dependenton each other, such that power controller may supply power to one ormore of network device 102 and electronics 129 and may also supplydifferent levels of power to network device 102 and electronics 129.Power controller 105 may have one or more power outlets for supplyingpower to network device 102 and electronics 129. Each power outlet isused for supplying power to a single device, or a plurality of devicesamong network device 102 and electronics 129. One of the reasons forusing power controller 105 for controlling power supply is so that theuser or administrator can restart or switch off devices remotely basedon various conditions or status of network environments. In somescenarios, such as when network device 102 is disconnected frominterconnected networks 103, or has a software or hardware malfunction,it may not be feasible to manage or restart network device 102 remotely.Therefore, in these scenarios, power controller 105 can be used tocontrol power supply to network device 102. Furthermore, electronics 129may not have the functionality to be managed remotely, and thus a useror administrator may control power supply to electronics 129 using powercontroller 105.

Electronics 129 may comprise various electronic devices such as atelevision, IP phone, computer, refrigerator, etc. Power controller 105comprises at least one WAN interface, such as WAN interface 125. WANinterface 125 may be a wired or wireless network interface through whichpower controller 105 connects to one or more networks. Network device102 comprises at least one WAN interface and at least one LAN interface.For illustration purpose, network device 102 comprises WAN interfaces115, 116 and 117, and LAN interface 118. WAN interfaces 115, 116 and117, and LAN interface 118 are a wired or wireless interface. Host 101a, host 101 b and power controller 105 are connected to network device102 via LAN interface 118. Power controller 105 is connected to poweroutlet 106, which supplies power to power controller 105 from the mainselectricity. Power controller 105 establishes a data connection withnetwork device 102 via WAN interface 125 and LAN interface 118respectively. Power controller 105 is capable of accessinginterconnected networks 103 via network device 102. Connection 127 is adata connection between power controller 105 and network device 102.Power controller 105 supplies power to network device 102 via a powerconnection provided by power cable 128. Power cable 128 is plugged in aterminal block of network device 102, or any port that can be used forreceiving power from power controller 105, such as a USB port or analternating current (AC) port. Network device 102 is connected tointerconnected networks 103 via one or more WAN connections establishedthrough one or more WAN interfaces 115, 116, and 117.

For example, LAN interface 118 is a wireless LAN (WLAN) interface andprovides a Wi-Fi network. Hosts 101 a, 101 b, and power controller 105connect to the Wi-Fi network and are able to access interconnectednetworks 103 via network device 102. Power controller 105 communicateswith management server 104 via network device 102 and interconnectednetworks 103.

In one variant, network device 102 comprises a plurality of LANinterfaces, and hosts 101 a, 101 b. Power controller 105 may connect tosame or different LAN interfaces of network device 102. For example, LANinterface 118 is a wireless LAN interface, and a second LAN interface ofnetwork device 102 is an Ethernet interface. WAN interface 125 of powercontroller 105 is an Ethernet interface, and power controller 105connects to network device 102 via an Ethernet connection between WANinterface 125 and the second LAN interface. In one example, powercontroller 105 and network device 102 have Power over Ethernet (PoE)functionality. Power controller 105 acts as a power sourcing equipment(PSE) and network device 102 acts as a powered device (PD), and theEthernet connection is used as both a data connection and a powerconnection between power controller 105 and network device 102. In thisscenario, power cable 128 is optional, and is not needed for supplyingpower from power controller 105 to network device 102.

In one variant, power controller 105 connects to interconnected networks103 using WAN interface 125 without connecting to network device 102.One of the benefits of power controller 105 having Internet connectivitynot via network device 102 is that if WAN connections established bynetwork device 102 to interconnected networks 103 fail or aredisconnected, power controller 105 may still be connected tointerconnected networks 103, and therefore to management server 104.Management server 104 is therefore able to send instructions to powercontroller 105 for stopping or resuming power supply to network device102. For example, a USB modem is inserted in WAN interface 125 and powercontroller 105 can access interconnected networks 103 via the USB modem.Alternatively, an Ethernet connection from an ISP is established via WANinterface 125. A user or administrator can send instructions to powercontroller 105 through interconnected networks 103 using a terminal,such as device 108 or device 107.

If a user or administrator wishes to restart network device 102 and/orone or more electronics 129 from a remote location, the user oradministrator sends an instruction to power controller 105 forrestarting the one or more electronics 129. Power controller 105 thenstops supplying power to network device 102 and/or the one or moreconnected electronics 129, and then again resumes supplying power tonetwork device 102 and/or the one or more connected electronics 129. Inanother example, the user or administrator sends an instruction to turnoff one or more connected electronics 129, and power controller 105 thenstops supplying power to the one or more connected electronics 129.

According to one of the embodiments, power controller 105 comprises aSIM card slot, and a SIM card is housed in the SIM card slot. Powercontroller 105 is therefore capable of sending and receiving SMSmessages. For example, when power controller 105 determines networkdevice 102 is disconnected from interconnected networks 103, and powercontroller 105 is unable to send messages to the user or administratorthrough network device 102, power controller 105 sends a SMS message tothe user or administrator before restarting network device 102. The useror administrator can also send an instruction in a SMS message to powercontroller 105 to restart one or more devices, such as network device102 or electronics 129.

For example, a user or administrator may send an instruction to networkdevice 102 using a short message service (SMS) message. The SMS messagecan be sent by the user or administrator to a number associated with theSIM card housed in power controller 105. When power controller 105connects to interconnected networks 103 via network device 102, Internetconnectivity of power controller 105 depends on status of WANconnections of network device 102 and may sometimes be down due tochanges in network conditions. In such cases, it is beneficial for theuser or administrator communicate with power controller 105 via a SMSmessage. The SMS message contains a predefined content, such that whenthe SMS message is processed, power controller 105 determines thatnetwork device 102 or one or more electronics 129 should be restarted.The predefined content may comprise a secret code for authenticating thesender of the SMS message.

According to one of the embodiments, power controller 105 can connect tointerconnected networks 103 using a cellular connection to have atemporary Internet connectivity. When network device 102 has beenrestarted, and power controller 105 is able to connect to interconnectednetworks 103 via network device 102, power controller 105 stops usingthe cellular connection and starts using WAN interface 125 to connect tonetwork device 102 for Internet connectivity. Power controller 105 usesthe cellular connection temporarily because it is likely that usageprice of a cellular connection is higher than that of Wi-Fi or Ethernet.One of the benefits of disconnecting from the cellular connection assoon as Internet connection is available through network device 102 isthat usage cost for using the cellular connection is likely to bereduced, and overall cost is lower compared to using the cellularconnection by default.

FIG. 6 is a flowchart illustrating a process according to one of theembodiments of the present invention. FIG. 6 is viewed in conjunctionwith FIG. 1B for better understanding of the embodiments. The process ofFIG. 6 is performed by power controller 105 to determine whether one ormore WAN connections of network device 102 are connected, and whetherthey can be used for successfully sending and receiving data. In step601, power controller 105 sends a request message to a remote server,such as management server 104, via network device 102. Power controller105 uses WAN interface 125 to send the request message to network device102, where the destination address of the request message is an IPaddress of management server 104. Network device 102 then attempts toforward the request message to management server 104 via one or more ofWAN interfaces 115-117. In step 602, power controller 105 determineswhether a valid response message has been received from managementserver 104. If a valid response message has been received, powercontroller 105 determines that the one or more WAN connections ofnetwork device 102 are functioning properly and network device 102 isconnected to interconnected networks 103 using at least one of WANinterfaces 115-117. If a valid response message is not received within afirst predefined time, power controller 105 determines that there is aproblem in one or more WAN connections established through WANinterfaces 115-117, or one or more components of network device 102 havemalfunctioned, which causes data to not be transmitted or receivedsuccessfully through WAN interfaces 115-117. As discussed above,restarting network device 102 may allow network device 102 to be able totransmit or receive data successfully. In step 603, power controller 105determines whether network device 102 has been restarted within a secondpredefined time. If the network device has not been restarted within thesecond predefined time, power controller 105 restarts network device 102in step 604. Power controller 105 restarts network device 102 bytemporarily stopping power supply to network device 102 through thepower connection. For illustration purpose, the request message is sentfor the purpose of conducting a health-check. The health-check can beperformed using Ping, DNS (Domain Name Server) lookup, HypertextTransfer Protocol (HTTP) or any other protocol that can be used to sendthe request message and receive a response message. If the health checkis performed using Ping, the request message comprises Internet ControlMessage Protocol (ICMP) packets. The response message is a DNS responsecomprising DNS resource records, or an acknowledgement message (ACK).One of the benefits of performing step 603 is to ensure that networkdevice 102 is not restarted very often. It is known that restarting adevice may require significant amount of time, and hence it may bepreferred to not restart network device 102 often. Furthermore,restarting network device 102 too often may result in software orhardware malfunction.

According to one of the embodiments, before performing step 604, powercontroller 105 determines the length of time WAN connections through oneor more WAN interfaces 115-117 have been disconnected or not functioningproperly. Network device 102 is restarted only if the WAN connection hasnot been functioning for more than a third predefined time. This is alsodone in order to avoid restarting network device 102 too often.

For illustration purposes, the first predefined time is within the rangeof five to ten milliseconds, the second predefined time is within therange of five to ten minutes, and the third predefined time is withinthe range of one to ten minutes.

FIG. 1C is a block diagram illustrating a system architecture of adevice, such as network device 102. Network device 102 comprisesprocessing unit 111, main memory 112, secondary storage 114, system bus113, WAN interfaces 115-117, and LAN interface 118. Secondary storage114 is a non-transitory computer readable storage medium. Processingunit 111 and main memory 112 are connected to each other directly.System bus 113 connects processing unit 111 directly or indirectly tosecondary storage 114, WAN interfaces 115-117, and at least one LANinterface 118. Using system bus 113 allows the device to have increasedmodularity. System bus 113 couples processing unit 111 to secondarystorage 114, WAN interfaces 115-117, and LAN interface 118. System bus113 can be any of several types of bus structures including a memorybus, a peripheral bus, and a local bus using any of a variety of busarchitectures. Secondary storage 114 stores program instructions forexecution by processing unit 111. The methods described in theembodiments below are processes at network device 102 carried out byprocessing unit 111.

FIG. 1D is a block diagram illustrating a system architecture of adevice, such as power controller 105. Power controller 105 comprisesprocessing unit 130, main memory 131, secondary storage 133, system bus132, and WAN interface 125. Secondary storage 133 is a non-transitorycomputer readable storage medium. Processing unit 130 and main memory131 are connected to each other directly. System bus 132 connectsprocessing unit 130 directly or indirectly to secondary storage 133, andWAN interface 125. Using system bus 132 allows the device to haveincreased modularity. System bus 132 couples processing unit 130 tosecondary storage 133, WAN interface 125. System bus 132 can be any ofseveral types of bus structures including a memory bus, a peripheralbus, and a local bus using any of a variety of bus architectures.Secondary storage 133 stores program instructions for execution byprocessing unit 130. Some of the methods described in the embodimentsbelow are processes at power controller 105 carried out by processingunit 130.

FIG. 1E is a block diagram illustrating the external components ofnetwork device 102 according to one of the embodiments of the presentinvention. Network device 102 comprises USB port 140, Ethernet port 141,power outlet 142, terminal block 143, SIM card slot 144, WLAN antenna145 and serial console 146. It should be noted that network device 102may comprise one or more of each of USB port 140, Ethernet port 141,power outlet 142, terminal block 143, SIM card slot 144, WLAN antenna145 and serial console 146. USB port 140 is used as a WAN interface. AUSB modem inserted in USB port 140 can be used for establishing a WANconnection. Alternatively, USB port 140 can also be used to connect toother devices such as mobile phones or USB powered devices. Ethernetport 141 is a WAN interface which can be used for establishing a WANconnection. Network device 102 may optionally comprise another Ethernetport which is a LAN interface used for connecting to a host in a LAN.Power outlet 142 is used for supplying power to one or more electronicdevices. In one example, power outlet 142 may be an Ethernet interfacecapable of providing PoE, as discussed above. In another example,terminal block 143 is used for receiving power from mains electricity ora power controller, such as power controller 105. SIM card slot 144 is aWAN interface used for housing a SIM card. The SIM card allows networkdevice 102 to send or receive SMS messages and may also provide Internetconnectivity. WLAN antenna 145 allows hosts to connect to a WLANprovided by network device 102. For example, the WLAN is a Wi-Finetwork. Serial console 146 can also be used by hosts to connect tonetwork device 102.

In one variant, one or more of USB port 140, Ethernet port 141, poweroutlet 142, terminal block 143, SIM card slot 144, WLAN antenna 145 andserial console 146 may be omitted, such that network device 102 mayfunction without one or more of these components.

According to one of the embodiments of the present invention, asillustrated in FIG. 1E, network device 102 comprises a SIM card slot 144which houses a SIM card. A user or administrator may send an instructionto network device 102 using a short message service (SMS) message. TheSMS message is sent to a number associated with the SIM card housed innetwork device 102. Internet connectivity of network device 102 maysometimes be down due to changes in network conditions. In such cases,it is beneficial to send instructions to network device 102 via a SMSmessage. The SMS message contains a predefined content, such that whenthe SMS message is processed, network device 102 determines that one ormore components should be restarted. The predefined content may comprisea secret code for authenticating the sender of the SMS message.

According to one of the embodiments of the present invention, networkdevice 102 acts both as a power controller and as a router. Asillustrated in FIG. 1E, network device 102 comprises a power outlet 142through which network device 102 supplies power to one or more devices,such as hosts 101 a and 101 b, or electronics 129. For example, poweroutlet 142 is an Ethernet interface, and network device 102 providespower to other devices, such as hosts 101 a and 101 b using Power overEthernet (PoE). Network device 102 therefore acts as a power sourcingequipment (PSE) for hosts 101 a and 101 b. In one example, when acondition is satisfied in step 202, network device 102 restarts hosts101 a and/or 101 b in step 203 but does not restart any of thecomponents of network device 102. More precisely, network device 102temporarily stops supplying power to hosts 101 a and/or 101 b. Forexample, power supply is stopped for five seconds and then resumedagain. For illustration purposes, a command “poe poe-shutdown” disablespower to a port. The command “poe poe-shutdown” is used for stoppingpower supply through power outlet 142, and network device 102 thus stopssupplying Power over Ethernet via power outlet 142. A command “nopoe-shutdown” enables power to a port. The command “no poe-shutdown” isused for resuming power supply through power outlet 142.

According to one of the embodiments, power outlet 142 is an alternatingcurrent (AC) power outlet. Network device 102 is capable of supplyingpower to one or more electronic devices such as electronics 129 or hosts101 a and 101 b. Network device 102 is connected to and receives powerfrom mains electricity via terminal block 143. Network device 102 maycomprise a plurality of power outlets, such that each electronic devicefrom electronics 129 or hosts 101 a and 101 b is connected to networkdevice 102 using a different power outlet. This allows network device102 to control power supply to each of electronic devices individuallyaccording to instructions received from the user or administrator. Forexample, a television is connected to a first power outlet of networkdevice 102 and a computer is connected to a second power outlet ofnetwork device 102. Network device 102 has internet connectivity throughone or more of WAN interfaces 115-117, and/or a cellular connectionprovided by a SIM card. Alternatively, network device 102 is capable ofreceiving SMS messages through a SIM card. If the user or administratorwishes to turn off the television, the user or administrator sends aninstruction to network device 102 via interconnected networks 103 orusing a SMS message. When network device 102 receives the instruction,network device 102 stops supplying power to the television through thefirst power outlet.

According to one of the embodiments, network device 102 is connected toone or more devices through USB port 140. USB port 140 may act as a WANinterface. For example, a USB modem can be inserted in USB port 140, andit may provide Internet connectivity to network device 102.Alternatively, a mobile phone can be connected to network device 102using a USB cable inserted in USB port 140, and a data connection of aSIM card inserted in the mobile phone may be tethered using the USBconnection. If the USB modem is not functioning properly, or performanceof the Internet connection via the USB modem is not satisfactory,network device 102 may restart the USB modem by stopping power supply toUSB port 140, and again resuming power supply to USB port 140. Inanother example, a USB-powered device may be plugged in USB port 140.Network device 102 may restart the USB-powered device if an instructionis received from a user or administrator. For illustration purpose, thefollowing Linux commands is used for stopping and resuming power supplyto USB port 140 respectively, where USB port 140 is named “usb1”:

“echo suspend>/sys/bus/usb/devices/usb1/power/level”

“echo on>/sys/bus/usb/devices/usb1/power/level”

FIG. 4A illustrates a block diagram of network device 102 according toone of the embodiments of the present invention. Each component ofnetwork device 102, such as WAN interfaces 115-117 is connected to apower circuit via a switch. For example, WAN interface 115 is connectedto power circuit 418 through switch 415, WAN interface 116 is connectedto power circuit 418 through switch 416, and WAN interface 117 isconnected to power circuit 418 through switch 417. Switches 415, 416,and 417 are field-effect transistors (FET), bipolar transistors, bipolarjunction transistor (BJT) insulated-gate bipolar transistor (IGBT),metal-oxide-semiconductor FET (MOSFET), metal-semiconductor FET(MESFET), junction FET (JFET), carbon nanotube FET (CNTFET),high-electron-mobility transistor (HEMT), heterostructure insulated gateFET (HIGFET), modulation-doped FET (MODFET), nanoparticle organic memoryFET (NOMFET), organic FET (OFET), vertical-slit FET (VeSFET), tunnel FET(TFET), relay, or any other type of switches that can be controlled byprocessing unit 111. Switches 415, 416, and 417 receive an input signalfrom processing unit 111, and based on the input signal, power issupplied from power circuit 418 to WAN interfaces 115, 116, and 117respectively.

FIG. 4B is a flowchart illustrating a restart process for performingstep 203 of FIG. 2 according to one of the embodiments of the presentinvention. In step 401, network device 102 determines to restart a firstcomponent, such as WAN interface 115. In step 402, a first signal issent to switch 415 by processing unit 111, which causes switch 415 toopen. Therefore, when switch 415 is open, power supply to WAN interface115 is stopped. In step 403, processing unit 111 sends a second signalto close switch 415, and thus power supply to WAN interface 115 isresumed. In this way, WAN interface 115 is restarted. The function ofpower circuit 418 is to supply power to processing unit 111, and therest of the components of network device 102.

According to one of the embodiments, before network device 102 isrestarted, a notification is sent to a user or administrator. Thenotification is sent to a device, such as devices 107 or 108, used bythe user or administrator via email, SMS message, instant message (IM),pop-up message, or any other message that can be used to inform a userthat network device 102 is about to be restarted. In one variant, aftersending the notification and before restarting one or more components ofnetwork device 102, network device 102 waits for a confirmation from auser or administrator. After a confirmation is received from the user oradministrator, one or more components of network device 102 arerestarted. If no confirmation is received from the user oradministrator, components of network device 102 are not restarted.

In one variant, if network device 102 is unable to send a notificationto a user or administrator before restarting, the notification is sentafter restarting. Network device 102 could be unable to send thenotification to the user or administrator due to connectivity problems.For example, if network device 102 is connected to interconnectednetworks 103 using only one WAN interface, such as WAN interface 115 anda WAN connection established through WAN interface 115 is disconnected,network device 102 is unable to send the notification to the user beforerestarting.

The embodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

The invention claimed is:
 1. A method carried out at a power controllerfor managing power supply to a network device, comprising the steps of:(a) sending a request message to a remote server when the powercontroller is supplying power to the network device; wherein the powercontroller is connected to the remote server via the network device; (b)waiting for a valid response message from the remote server; wherein thevalid response message is received when all components of the networkdevice functioning properly; and (c) when a valid response message isnot received from the remote server within a first predefined time,stopping providing electricity to the networking device temporary, andthen resuming providing electricity to restarting the network device;wherein: the power controller connects to the remote server via thenetwork device; the network device connects to the remote server usingat least one network interface; the request message is sent by the powercontroller via the network device if the network device is connected tothe remote server via the at least one network interface; the powercontroller has at least one data connection and at least one powerconnection with the network device; and the power controller and thenetwork device are two different separate devices.
 2. The method ofclaim 1, further comprising determining a length of time that one ormore components of the network device has been disconnected from theremote server or not functioning properly; wherein step (c) is performedif the length of time is longer than a second predefined time.
 3. Themethod of claim 1, wherein: the power controller comprises a subscriberidentity module (SIM) card slot housing a SIM card; and the requestmessage and the valid response message are sent and received using acellular network connected using the SIM card without passing throughthe network device.
 4. The method of claim 1, wherein the powercontroller supplies power to the network device using power overEthernet (PoE).
 5. The method of claim 1, wherein the power controllersupplies power to the network device using an alternating current (AC)power outlet.
 6. The method of claim 1, wherein the power controllersupplies power to the network device using a serial console or auniversal serial bus (USB) port.
 7. The method of claim 1, wherein thepower controller supplies power to a plurality of electronic devices. 8.The method of claim 7, further comprising: restarting one or more of theplurality of electronic devices based, at least in part, on a messagefrom a management server.
 9. The method of claim 8, wherein the messageis received from the management server via the network device.
 10. Themethod of claim 8, wherein: the message received from the managementserver is a short message service (SMS) message, and the message isreceived via a SIM card housed in a SIM card slot of the powercontroller.
 11. A system, comprising: a power controller configured tomanage power supply to a network device, wherein the power controllercomprises: at least one network interface; at least one processing unit;and at least one non-transitory computer readable storage medium storingprogram instructions executable by the at least one processing unit andconfigured to cause the at least one processing unit to: (a) send arequest message to a remote server when the power controller issupplying power to the network device; wherein the power controller isconnected to the remote server via the network device; (b) wait for avalid response message from the remote server; wherein the validresponse message is received when all components of the network deviceare functioning properly; (c) when a valid response message is notreceived from the remote server within a first predefined time, stopproviding electricity to the networking device temporary, and thenresume providing electricity to the network device; wherein: the powercontroller connects to the remote server via the network device; thenetwork device connects to the remote server using at least one networkinterface; the request message is sent by the power controller via thenetwork device if the network device is connected to the remote servervia the at least one network interface; the power controller has atleast one data connection and at least one power connection with thenetwork device; and the power controller and the network device are twodifferent separate devices.
 12. The system of claim 11, wherein the atleast one non-transitory computer readable storage medium further storesprogram instructions executable by the at least one processing unit andconfigured to cause the at least one processing unit to determine alength of time that one or more components of the network device hasbeen disconnected from the remote server or not functioning properly;wherein step (c) is performed if the length of time is longer than asecond predefined time.
 13. The system of claim 11, wherein: the powercontroller comprises a subscriber identity module (SIM) card slothousing a SIM card; and the request message and the valid responsemessage are sent and received using a cellular network connected usingthe SIM card, without passing through the network device.
 14. The systemof claim 11, wherein the power controller supplies power to the networkdevice using power over Ethernet (PoE).
 15. The system of claim 11,wherein the power controller supplies power to the network device usingan alternating current (AC) power outlet.
 16. The system of claim 11,wherein the power controller supplies power to the network device usinga serial console or a universal serial bus (USB) port.
 17. The system ofclaim 11, wherein the power controller supplies power to a plurality ofelectronic devices.
 18. The system of claim 17, wherein the at least onenon-transitory computer readable storage medium further stores programinstructions executable by the at least one processing unit andconfigured to cause the at least one processing unit to restart one ormore of the plurality of electronic devices based, at least in part, ona message from a management server.
 19. The system of claim 18, whereinthe message is received from the management server via the networkdevice.
 20. The system of claim 18, wherein: the message received fromthe management server is a short message service (SMS) message, and themessage is received via a SIM card housed in a SIM card slot of thepower controller.